人脸识别数据库(离线版本有几千上万条,几亿的人脸基数)非常庞大,他是如何高效的从数据库里检索人脸的呢?
无他话直入主题,这得先了解一下人脸识别系统主成,包括:人脸图像采集和检测、人脸图像预处理、人脸图像特征提取以及匹配,完成识别。
识别过程主要是这三步:
1、 建立人脸图像档案数据
2、 获取当前的人脸图像
3、 将当前的人脸编码与档案数据比对
人脸识别消费机的原理
普及一下,人脸识别是基于了深度学习,利用卷积神经网络对海量(几百万张)的人脸图片进行学习分析,然后从输入人脸图像提取出对区分不同人的脸有用的特征向量(如:脸的长度、宽度、平均肤色、唇部宽度、鼻子长度等等),区别于以往人为设计的特征。
通过特征向量在特征空间里进行比对,同一人的不同照片提取出的特征,在特征空间里距离很近,不同人的脸在特征空间里相距较远。
人脸识别数据库(离线版本有几千上万条,几亿的人脸基数)非常庞大,那么如何高效的从数据库里检索人脸的呢?
目前来说检测的效率一般与特征值的大小和数据集大小有一定的相关性,一般特征值越大效率越低。
从比对策略层面来说,针对数据集较大的一般可以采取多线程策略处理;另外,大规模的数据可以考虑服务器的集群检索的模式。
那么,硬件性能、图片质量、测试环境等因素均会影响人脸检测、人脸跟踪、与人脸特征提取等应用(SDK调用)所用时间。
人脸比对
人脸比对就容易理解了,通过将两张人脸提取出特征码,再计算两张人脸的相似度,并且给出相应的相似比值,从而判断两张人脸是否为同一个人。